﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Chapter08.Code05
{
    public class Demo
    {
        public static void Begin()
        {
            //01 B、D和E。public、privata、protected是实际的可访问级别
            //02 错误，永远都不应手工调用对象的析构函数，.NET 运行库环境会在垃圾回收过程中自动完成该任务
            //03 不，可以在没有任何类型实例的情况下调用静态方法
            //04 详见 HorDink、CupOfCoffee、CupOfTea 类及 ICup 接口
            //05 详见 ManipulateDrink 方法
        }

        private static void ManipulateDrink(HotDrink drink)
        {
            drink.AddMilk();
            drink.Drink();
            if (drink is IHotDrink)
            {
                IHotDrink cupInterface = (IHotDrink)drink;
                cupInterface.Wash();
            }
        }

        private static void ManipulateDrink(IHotDrink drink)
        {
            drink.AddMilk();
            drink.Drink();
            drink.Wash();
        }
    }
}
